{
  "$schema" : "http://json-schema.org/draft/2019-09/schema#",
  "title" : "Outbound Acknowledgement Extract",
  "type" : "object",
  "additionalProperties" : false,
  "properties" : {
    "id" : {
      "type" : "integer",
      "description" : "Unique identifier for each file that is produced or processed by CMP"
    },
    "interfaceCategory" : {
      "type" : "string",
      "enum" : [ "Payments", "Credit Management", "Usage Processing", "Billing", "Purge", "Number Management", "Data Warehouse", "COMMS", "Provisioning", "Core Bulk", "Satellite Bulk", "Sales Order", "External Data", "Device Enrolment", "Utility" ],
      "description" : "CMP categorisation of the job associated with this file."
    },
    "interfaceType" : {
      "type" : "string",
      "enum" : [ "Recurring Card Payments", "Posting Recurring Payments", "Not Applicable", "Debt Recovery Response", "Debt Recovery Extract", "Reversal", "Rated Usage", "Usage Archiving", "Posting Uploaded Payments", "Upload", "Invoice Production", "Statement Production", "Bill Print", "Invoice Posting S/L", "Invoice Posting G/L", "Credit Reference", "Recurring Bank Payments", "Correspondence History Purge", "Address Purge", "Payment Card Purge", "Refund Purge", "ADDACS Purge", "Experian Purge", "Payments Extract Purge", "Direct Debit Purge", "Account Purge", "Credit Control", "Managed Numbers", "Rated Charge", "Mandates", "Managed Number Monitor", "SIM Profiles", "Unbilled Usage Analytics", "PUSH", "EXTERNAL_TRIGGER", "SMS", "EXTERNAL", "STORAGE", "EMAIL", "LETTER", "ACKNOWLEDGEMENT", "Agreement Analytics", "Invoice Detail Analytics", "Unallocated Usage Analytics", "Subscription Analytics", "Subscription Service Analytics", "Payment Detail Analytics", "Account Analytics", "Transaction Detail Analytics", "Billed Usage Analytics", "Edit Subscription", "External Reference", "Receipt Print", "Default", "Card Pre Payments", "Balance Pre Payments", "Subscription Feature Analytics", "Purchase Analytics", "Sales Order Request", "Sales Order Dispatch", "Unrated Usage", "Interface Purge", "Recurring Cheque Payments", "Advance Notification", "Device Enrolment Request", "Device Enrolment Response", "Prepaid Usage Analytics", "General Ledger", "Bill Cycle Change", "Bulk Workflow", "Bulk Feature", "Bulk Contract Details", "Bulk Plan Tariff Change", "Hierarchy Analytics", "Invoice Analytics", "Bulk Subscription Service", "Consumer Purge", "Data Fix", "Bulk SLA", "Usage Aggregation", "Usage Reconciliation", "Statement Analytics", "System Activity Purge", "Archive Management", "Offline Rerating", "Allocations" ],
      "description" : "Sub-categorisation of the job"
    },
    "version" : {
      "type" : "number",
      "minimum" : 0.0,
      "maximum" : 99.99,
      "description" : "The current version of the file"
    },
    "stageDateTime" : {
      "type" : "string",
      "format" : "date-time",
      "description" : ""
    },
    "stage" : {
      "type" : "string",
      "enum" : [ "Batch", "Extract/Load", "Transform", "Transmission", "Structure Expansion" ],
      "description" : "Represents the processing stage a file has reached"
    },
    "stageStatus" : {
      "type" : "string",
      "enum" : [ "In Progress", "Complete", "Error" ],
      "description" : "Represents the status of the file at the processing stage"
    },
    "externalFileName" : {
      "type" : "string",
      "maxLength" : 100,
      "description" : "Third party file name"
    },
    "error" : {
      "$ref" : "#/definitions/Error",
      "description" : "The error"
    }
  },
  "required" : [ "interfaceCategory", "interfaceType", "version", "stageDateTime", "stage", "stageStatus" ],
  "definitions" : {
    "Error" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "row" : {
          "type" : "integer",
          "description" : "Represents the row"
        },
        "description" : {
          "type" : "string",
          "maxLength" : 500,
          "description" : "Description associated with the row"
        }
      },
      "required" : [ "description" ]
    }
  }
}